home *** CD-ROM | disk | FTP | other *** search
Text File | 1995-07-05 | 78.8 KB | 1,650 lines |
- Freedom┐ V1.14a
- ---------------
- ('to choose...')
-
- 5th July 1995
-
- (c) 1995 by Christian Krüger and Kolja Koischwitz
-
- EnhancedGEM 2.25 (c) 1995 by Christian Grunenberg
-
- XIMG decoder (c) by Dirk Haun
-
- English translation by Joe Connor
-
- Overview
- ========
- Multitasking is the future for Atari software. To survive into this era
- software has to adapt. Most experienced programmers have already
- implemented windowed dialogs, the time for flying dialogs has flown! Only
- two relics remain from this bygone age, the file selector and alert boxes.
- There's no way to bypass these system blocking relics, at least there
- wasn't until Freedom┐ arrived and set your applications free!
-
- The unbelievable feature list:
- ------------------------------
- -At least 8 non-modal file selectors at the same time!
- -Parallel processing capability!
- -Freedom┐ alert boxes can optionally be displayed in windows.
- -Any program which supports the VA_START protocol or has a menu bar is no
- longer blocked!
- -Long filename support
- -Font, size and colour in directory window are user definable
- -User definable font and size
- -Drag&drop font protocol support
- -Keyboard layout 99% Selectric┐ compatible
- -Multiple file selection (naturally Selectric┐ compatible)
- -Up to 40 user definable filenames, paths and extensions
- -History popup to select from last 20 selected files
- -The ultimate in intuitive interface design using Enhanced GEM featuring
- Short paths, minimal clicks, shortcuts and Popups
- -Left handed mode!
- -Unix masks (*,?,[]) and extension lists (*.TOS,*.PRG)
- -Icons representing files/folders
- -Drag&drop support (paths and files and be dragged to the file selector
- (AV, MultiTOS, Drag&drop) and vice versa
- -Messages concerning directory changes evaluated using SH_WDRAW,
- AV_PATH_UPDATE, SC_CHANGED
- -Fuzzy file location! Freedom┐ tries everything possible to ascertain a
- reasonable application name even under single TOS. Freedom┐ looks for
- XAcc, AV and even Menutitle0 if the string looks promising (not the Atari
- symbol or Desk).
- -File delete, new file/folder creation and file/folder info
- -Search using mask to select or deselect files
- -Export paths or selected files as ASCII listing to the Clipboard
- -Full communication with available AV-Server (eg Thing/Gemini)
- -Delete and touch files
- -File delete/copy/move using Drag&Drop or the Clipboard. Kobold is
- automatically used if loaded in memory or available via the environmental
- variable KOBOLD_PATH under a multitasking OS.
-
- Reasons to use Freedom┐ - A checklist
- =====================================
- -You can't resist the feature list!
- -You use a multitasking OS
- -You like using superb software which pushes GEM to the limit
- -You have a Flydial, file selector or alert open and:
-
- ... Your comms application rings
- ... Your comms application reports an up/download error
- ... You want to run your GEM ray tracer
- ... You want to use your GEM packer
- ... Your window clock stops
- ... You press F1 and your beloved Kobold doesn't appear
- ... Your MagiC popup is no longer accessible
- ... You can't access the menu bar
- ... Your screenshot program can't take any more pictures
- ... etc etc
-
- Add the problems caused by system modal dialogs ('Flydials') together with
- programs which don't offer long filename support and it's time to ditch
- them and see what Freedom┐ has to offer!
-
- Installation
- ============
- -Add FFSEL.PRG to your Auto folder
- -Or optionally use FFSELR.PRG instead
- -Or skip this step
- -Rename FREEDOM.APP to FREEDOM.ACC to install Freedom┐ as an accessory
- under Single TOS
- -Or use a Chameleon to un/load Freedom┐ as desired
- -Under MagiC/MiNT FREEDOM.APP can be started as desired. (Under MagiC from
- the APPS folder or under MiNT in GEM.CNF)
-
- If you're short of memory there's another option so long as your computer
- and hard disk are fast enough.
- Create a file called FFSEL.INF which contains the path to FREEDOM.APP
- (including the filename) and add it to your Auto folder alongside
- FFSEL.PRG for example:
-
- C:\FREEDOM\FREEDOM.APP
-
- Using this method the main program FREEDOM.APP is not memory resident but
- loaded into memory as required. After a period of inactivity (defined in
- FREEDOM.CNF using the #SHUTDOWN parameter) FREEDOM.APP can also be
- automatically unloaded from memory.
-
- Loading Freedom┐ in and out of memory isn't a problem under a multitasking
- OS. Under single TOS we recommend you install Freedom┐ memory resident BUT
- it is possible to use Chameleon, the accessory loader programmed by
- Karsten Isakovic.
- For those determined to ignore our advice a patched version of Chameleon
- is included (with Karsten's permission)) in this distribution. This has
- been patched so that:
-
- 1) On reloading an accessory an AC_OPEN isn't automatically sent.
- 2) The comprehensive crash using appl_find('?AGI') is rectified.
-
- For some strange reason there are a few users who wish to eradicate all
- their free memory by running Freedom┐ AND Selectric┐! This is now possible
- using the program KILLFSEL which deletes the Selectric┐ cookie jar entry.
-
- If, during installation, FFSEL finds a FSEL Cookie less than v2.0 it
- replaces this with a pointer to it's own structure. If you luck holds
- Freedom┐ appears with all clean programs leaving Selectric┐ to clean up
- the rest (including the 'Start program...' entry in the MagiC popup.
-
- FFSELR.PRG is offered as an alternative to FFSEL.PRG and handles redraw
- messages by filling the application windows with the Freedom┐ logo. When
- the application regains control it can restore its windows.
- This method is less compatible than the new version but on slower
- computers saves a few superfluous redraws, it's also a few Kilobytes
- larger. If you'd don't like the fill pattern you can change it using a
- program written by Andrew Mayer. The choice is yours!
-
- How Freedom┐ works
- ==================
- Freedom┐ consists of two parts:
- -A file selector/Alert box 'Server' (FREEDOM.APP) which runs as a parallel
- application or accessory and waits to be activated by calls via the
- defined interface (usually AES messages).
- A number of file selectors and alert boxes which can be opened is only
- limited by available memory and window handles.
- The server reports itself on starting using the XAcc Protocol and
- installs the extended XAcc Names 'XFileSelect\0XFontAck'.
-
- -A resident part FFSEL.PRG. Applications which call the file selector or
- an alert box sends an appropriate request to the Server which (if
- necessary) starts itself in parallel and waits in an event loop for a
- reply from the Server.
- Inside the event loop various other messages are handled simultaneously
- (Window redraw, move, size, top, send to back etc) as long as the
- alerts/file selectors are active and the menu bar of the calling program
- is dis/re-enabled.
- By cunning programming this part is up to 8 times re-entrant which means
- up to 8 different applications, alerts or file selectors may be open
- before the trap handler ignores any further calls and passes an alert to
- the system.
- This part also handles conversion of the reply from Freedom┐ using one of
- the three Selectric┐ protocols. This does however present a problem
- because only a single Selectric cookie is passed it's possible another
- application/s could try to communicate simultaneously. To minimise this
- risk the resident FFSEL sits on messages for applications and passes them
- on later. The following are specifically 'swallowed':
-
- (AC_CLOSE) ; Sadly, due to problems with Chameleon
- AC_OPEN
-
- MN_SELECTED
- WM_CLOSED, WM_FULLED, WM_ARROWED,WM_MOVED
- WM_HSLID, WM_VSLID, WM_SIZED, WM_UNTOPPED, WM_TOPPED, WM_ONTOP
- WM_NEWTOP, WM_ICONIFY, WM_UNICONIFY, WM_BOTTOMED
-
- VA_START, VA_STARTED, VA_DRAGACCWIND
-
- AV_SENDKEY ; AV server should be the Freedom┐ Protocol
- AV_STARTPROG ; supported, if it's a file selector
- AV_OPENWIND ; call
- AV_OPENCONSOLE ;
-
- AP_DRAGDROP ; answered with DD_NAK
-
- WM_REDRAW ; passed once (maximum) for each window sent by
- WM_MOVED ; an application.
-
- Operation
- =========
- Although the Freedom┐ interface is primarily designed to take advantage
- of the latest enhanced GEM tools to offer the ultimate in point and click
- simplicity we haven't forgotten users who prefer to navigate menus using
- keyboard shortcuts.
-
- Changing drives - using the mouse Keyboard shortcut
- -----------------------------------------------------------------------
- Click on the drive letter section of the path [Control]+L
- and a popup containing the available drives Displays the popup
- is displayed. Alternative:
- [Alternate]+Drive letter
- Changes to drive
-
- Changing the file extender - using the mouse Keyboard shortcut
- -----------------------------------------------------------------------
- Click on the file extender section of the
- path using:
- .. Left click: Directory specific masks [Control]+Y
- +[Shift] if files selected
- .. Right click: User defined masks [Control]+X
- +[Shift] if files selected
- .. Left double click: Dialog to enter mask [Control]+E
- .. Right double click: Pseudo File type masks
- Alternative:
- [Control]+Number pad 1-0
- Selects from the first
- 10 defined masks.
- [Shift]+[Control]+
- Number pad 1-0 selects
- masks 11-20.
- [Control]+Number pad .
- selects the default mask
- [Control]+Number pad *
- sets mask to *.*
-
- Change directory level - using the mouse Keyboard shortcut
- -----------------------------------------------------------------------
- Left click on the directory section of the
- path using:
- .. Directory: popup with alternative
- folders is displayed.
- .. Slash '\': The path is 'truncated' at [Control]+1-0 steps
- the level selected. This 1-10 levels up
- feature is similar to the
- 'Mac-Path' concept.
- .. last '\': All directories at this level
- are displayed in a popup.
-
- Left click on the Closer (icon to left of [Control]+[Backspace] or
- path) to move up a directory level. [Control]+[Undo]
- Right or double click to return to the root [Shift]+[Control]+
- directory [Backspace] or
- Direct single or double click on a folder Move to folder using the
- in the directory window changes to the scroll arrows then press
- folder. either the [Return] or
- Default: Double click needed to open folder [Enter] key
-
- Double left click or single right click on [Control]+P
- the path on or before the last backslash Alternative:
- to display the user defined path popup. [Alternate]+1-0
- selects from the first
- 10 user defined paths.
- [Alternate]+[Esc]
- selects the default path.
- [Shift]+[Alternate]+1-0
- selects user defined paths
- between 11-20.
- Save current status in Clipboard. [Control]+C
- Set current status from Clipboard. [Shift]+[Control]+V
-
-
- De/select files - using the mouse Keyboard shortcut
- -----------------------------------------------------------------------
- To select any file use a single left click.
- Left click and hold the button down then
- drag to select consecutive files.
- The directory window automatically scrolls
- in the appropriate direction as the upper or
- lower edge of the window is reached.
-
- Note! If you don't start the drag action
- quickly enough the pointer changes to the
- hand Drag&Drop icon. The time delay before
- the cursor changes is user definable.
-
- To select two or more files which are not
- adjacent to each other, hold down either
- [Shift] key and select them in turn.
- To deselect a selected file select it again
- whilst holding down either [Shift] key.
-
- To de/select all files left click on the [Control]+A
- fuller icon to the right of the path in
- the directory window title bar.
- To invert the selected files right click on [Shift]+[Control]+A
- the fuller icon.
- To select files using a mask double click on [Control]+S
- the fuller icon and a 'Select files' dialog
- appears ready to enter your desired mask. On
- exiting the dialog using the 'OK' button all
- matching files are selected.
- To deselect files using a mask hold down the [Shift]+[Control]+S
- [Shift] key and double click on the fuller
- icon to display a 'Deselect files' dialog.
- A popup containing the pre-defined files is [Control]+M or
- called by right clicking on 'File:' text to
- the left of the editable field.
- A left click displays the 'History' popup [Control]+<
- which contains the last 20 files selected.
-
- Selecting file/s with either of these two
- Popups automatically closes the Freedom┐ and
- passes the file/s to the calling application.
- This behaviour can be inhibited by holding
- the [Shift] key down during selection.
- Using the arrow keys the
- selected file can be
- changed using the selection
- bar like a cursor.
-
- To scroll the directory
- window a page at a time
- hold down the [Shift]
- key.
-
- To select the first/last
- entry press [ClrHome]
- /[Shift]+[ClrHome] or
- [Control]+Cursor up/
- [Control]+Cursor down.
- Freedom┐ can also be configured so a right
- click in the directory window is interpreted
- as a [Shift]+left click action.
-
- Copy complete path (with mask) to Clipboard [Control]+C
- Collect path (with mask) from Clipboard [Control]+V
-
- File scrolling - using the mouse Keyboard shortcut
- -----------------------------------------------------------------------
- The simplest method is a left click and hold See above
- action to scroll through the files. The [Control]+Cursor up
- slider works just like a standard GEM slider [Control]+Cursor down
- only better because of 'real time' scrolling.
-
- If the #RSCROLL option in the configuration
- file is active a single right mouse click
- anywhere inside the directory window
- activates 'Dynamic scrolling'
- (As used in the 'Thing' alternative desktop')
-
-
- Changing the Sort method - using the mouse Keyboard shortcut
- -----------------------------------------------------------------------
- Right or double click on the slider button [Control]+J
- to open the sort popup (locating the sort Alternatives:
- popup on the slider button means it's always [Control]+H: By name
- handy when you need it). [Control]+Z: By date
- [Control]+G: By size
- [Control]+T: By ending
- [Control]+K: No sort
- [Control]+R: Reverse
- File type sorting can additionally be applied
- by activating the 'Type' option and can only
- be activated using this popup.
-
- Drag & drop - using the mouse Keyboard shortcut
- -----------------------------------------------------------------------
- A left mouse click and hold over a selected [Alternate]+Arrow keys
- file (or combination of selected to manoeuvre the mouse
- files/folders) changes the mouse pointer to pointer over the
- the hand icon and surrounds the selected selected objects, then
- objects with a ghosted frame. [Alternate]+[Insert] to
- These objects can now be dragged to other 'grab' the objects.
- applications, eg a desktop, depending on your Now the objects can be
- system. The Info line along the bottom of the dragged using the
- directory window reports the likely result of [Alternate]+Arrow keys.
- releasing the left mouse button. (These shortcuts are built
- into the OS and nothing to
- do with Freedom┐)!
- If the files are dragged onto a badly
- programmed application Freedom┐ cannot
- foresee the outcome. Often nothing at all
- happens because the window of an AV-Server
- (Gemini/Thing/Ease or other program) has
- already requested the destination.
-
- Freedom┐ can copy/move objects by
- Drag&Dropping objects between windows of an
- AV-Server or other Freedom┐ file selectors.
- Further (application independent) Freedom┐ [Control]+[Help] or
- file selectors can be opened by double or [Shift]+[Help]
- right mosue clicking on the Freedom┐ logo.
-
- Freedom┐ functions - using the mouse Keyboard shortcut
- -----------------------------------------------------------------------
- Delete: Select the object/s to be deleted [Control]+D
- then click on the Wastebaket icon or drag the
- selected objects to the icon.
-
- New object: Click on the folder icon to [Control]+N
- display the 'New object' dialog.
- Enter the desired folder/file name to be
- created and select the desired button to
- create an empty (zero length) file or folder.
-
- Object Information: Select the object/s you
- would like Information about followed by the
- desired action. Alternatively you can drag
- the selected object/s to the icon.
- .. Left mouse click on the Info icon: [Control]+I (or [Tab])
- Displays the 'Object-Information' dialog
- for each object in turn.
- For files the dialog displays the file
- creation date and time, filename, size and
- status flags (Locked, Hidden, System and
- Archive). The status flags and filename
- are editable.
- For folders the dialog along with the
- editable folder name.
-
- .. General information ('Count files'): [Shift]+[Control]+I
- After selecting one or more objects right
- mouse click on the Info icon to display an
- 'Information' dialog which begins a
- recursive count then displays the total
- number of files, folder and bytes.
- If the count is started in error or takes
- too long press the [Esc] key to abort the
- count.
-
- .. Drive info ('Count files'): [Shift]+[Control]+I
- Left or right mouse click on the Info icon
- without any objects selected to begin a
- recursive count of all the files on the
- current drive. A dialog displays the total
- number of files, folder and bytes.
- If the count is started in error or takes
- too long press the [Esc] key to abort the
- count.
-
- .. Touch: [Control]+B
- The 'Touch' button updates (recursively)
- the file creation date and time for each
- selected file. Select the desired object/s
- then drag them to the New object icon to
- display the Touch dialog.
-
- Export to Clipboard: Select the desired [Control]+C for copy
- object/s then drag them to, or click on, the [Control]+X for move
- Clipboard icon. For move operations hold down
- the [Control] key during the drag action.
-
- A file SCRAP.TXT will be created listing the
- selected paths and filenames, tagged to
- distinguish between copy and move operations.
-
- Import (Copy/move) from Clipboard: [Control]+V
- The contents of the file SCRAP.TXT is acted
- upon. Select the destination directory then
- click on the Clipboard icon or drag the
- Clipboard icon to the desired location.
- For move operations hold down the [Control]
- key during the drag action.
-
- Right mouse click on the clipboard to [Shift]+[Control]+V
- import the path from SCRAP.TXT. Freedom┐
- jumps to select any specified object/s.
- Naturally if SCRAP.TXT contains garbage
- anything can happen!
- It's also possible to 'exchange' object/s
- with a window in the Gemini desktop.
- Highlight the desired object's in a Gemini
- window then press [Control]+C to export it
- to the Clipboard and use [Control]+V to
- import the paths in Freedom┐. Unfortunately
- this currently doesn't work in the other
- direction due to a faulty Gemini function.
-
- Find file: Click on the magnifying glass to [Control]+F
- display the Object search dialog. Enter a
- search mask and select whether the current
- folder, drive or all drives will be searched.
- If the environmental variable DRIVEMAP is set
- this is used when search all drives is
- selected.
- Click 'OK' to start the search and any
- keypress [Esc] to abort at any time.
- If a matching file is found the search is
- paused and its name is displayed in the wide
- button beneath the Search line.
- Four options are available:
- .. Wide button: The file is passed to the
- underlying file selector which passes the
- file to the application and automatically
- closes Freedom┐.
- .. OK: Single left click passes the file to
- the underlying selector with the matching
- file selected and entered in the 'File'
- editable field. A double or right mouse
- click has the same effect as clicking on
- the wide button.
- .. Again: Searches for another matching file.
- .. Cancel: Close the dialog without action.
-
- Freedom┐ normally puts an 'invisible' link
- between the search dialog which means it's
- only possible to open one search dialog per
- file selector.
- This option offers the possibility of [Shift]+[Control]+F
- opening multiple search dialogs which can
- all run even under Single TOS!
- Don't blame us if your hard disk explodes!
-
- Open object: Primarily for multitasking OS Select file/s then press
- users. A double/right mouse click, whilst [Control]+O
- holding down either the [Alternate] or
- [Control] key, on an object/s opens the
- object/s.
- i.e. if a viewer is configured to handle a Alternatively a single
- certain filetype a message is sent with the file can be opened using
- selected file/s. Freedom┐ also starts the [Control]+[Return]
- viewer in parallel if it's not already memory
- resident. Since this isn't very flexible
- Freedom┐ lets the AV-Server (where possible)
- handle this because it can also take into
- account installed applications etc.
-
-
- The one-step auto-locator - an overview...
- ------------------------------------------
- A certain other file selector offers an auto-locator but ours is different
- and we're proud of its functionality!
-
- Our 'One-step auto-locator' is similar in operation to the 'Completion'
- command anyone familiar with command shells should recognise.
- If the auto-locator is switched off it can be activated by pressing the
- [Tab] key. There is an apparent conflict with the 'Object info' function
- which is also assigned to the [Tab] key. To avoid this conflict 'Object
- info' is also assigned to the [Control]+[I] and the 'One-step
- auto-locator' is also assigned to the [Control]+[Tab].
- By default (set in the CFN file) the Freedom┐ auto-locator searches for
- both files and folders. Holding down the [Shift] key during a search
- restricts the search to files only.
- The 'One-step' feature steps through each matching file in turn before
- looping back to the first match for another cycle, the ultimate in
- convienience!
-
-
- The Clipboard
- -------------
- The Clipboard, via the file SCRAP.TXT, is used to store the object names
- and paths for subsequent use.
- To exchange files with the Clipboard the standard copy, [Control]+C, and
- move, [Control]+X, key combinations are available. Altenatively object/s
- can be Drag&Dropped onto the Clipboard icon.
- A single left click on the Clipboard icon changes the pointer to display a
- hand with the ghosted image of the object/s ready to Drag&Drop onto other
- applications, editable fields, path fields or the Freedom┐ Trashcan/Info
- icons or any Freedom┐ file list window (to copy).
- Copy/move operations can also be completed using the keyboard combination
- [Control]+V which checks the status of the move/copy flag.
- Holding down the [Shift] key in addition to [Control]+V causes Freedom┐ to
- jump to the directory containing the objects listed in SCRAP.TXT and
- highlight them ready for selection. This makes it easy to return to the
- original path after a copy/move operation (similar to Selectric).
- Another useful feature is the ability to 'capture' a formatted filelist.
- Highlight the desired files then double click on the Clipboard icon or
- press [Shift]+[Control]+V to save the list in SCRAP.TXT. Here's a simple
- example #NICEFORMAT string in FREEDOM.CNF:
-
- #NICEFORMAT Filename: %-F.%-E Size: %11P Bytes
-
- And here's the resulting output:
-
- Filename: evrst34e.zip Size: 96.472 Bytes
- Filename: frdm114d.lzh Size: 365.720 Bytes
- Filename: html093 .lzh Size: 107.119 Bytes
-
- Notes!
- Remember object/s are only physically copied/moved when they are
- Drag&Dropped to another location or pasted using [Control]+V.
- Warning: DON'T copy files to the Clipboard then delete the originals
- because all you'll have left is a file list in SCRAP.TXT!!!!
- SCRAP.TXT itself is vunerable and is often written to by other
- applications so it's safest (and sensible) to perform copy/move/paste
- operations following on from each other then you're unlikely to encounter
- unexpected data in SCRAP.TXT.
- For anyone interested Freedom┐ (cheekily :-) sets the file archive bit for
- SCRAP.TXT when using [Control]+X or [Control]+V. Using [Control]+X the
- (normally set) archive bit is cleared.
- It's also possible to drag object/s even if Freedom┐ is display as a modal
- dialog.
-
- Seven little helpers - the popup menus
- ------------------------------------
- Have you ever noticed how often you working on the same files? Sometimes
- days or even weeks at a time! And each time you have to select them using
- the file selector. With Freedom┐ it doesn't have to be this way! If you're
- used to using other file selectors which offer user definable paths and
- extensions you'll know just how useful they are. No doubt you'll also have
- noticed how quickly you run out of slots! Freedom┐ offers up to 40 full
- paths and extensions which should be enough for most people!
-
- File popup
- ----------
- A single right mouse click on the word 'File:' preceding the editable file
- selection field displays the File popup, simply select the desired file
- and Freedom┐ automatically closes itself and passes the specified file to
- the calling application.
- Up to 40 files with full path entries can be defined under the #FILES
- section in FREEDOM.CNF.
- A single click on the File popup displays files which match the currently
- active mask and a double click displays all files up to the maximum which
- can be fitted on screen. To display all available files select the '*.*'
- mask.
-
- History popup
- -------------
- A single left mouse click on the word 'File:' preceding the editable file
- selection field displays the History popup, simply select the desired file
- and Freedom┐ automatically closes itself and passes the specified file to
- the calling application.
- This popup contains the last 40 (maximum) selected files which makes it
- reall easy to find files quickly.
- If the #HISTFILE <ful path> is set in FREEDOM.CNF the contents of the
- history popup is stored and restored next time you power on your machine
- and run Freedom┐.
- A single click on the History popup displays files which match the
- currently active mask and a double click displays all files up to the
- maximum which can be fitted on screen. To display all available files
- select the '*.*' mask.
-
- Path popup
- ----------
- A double/right click anywhere before the last '\' on the path line
- displays the Path popup, simply select the desired path in the popup and
- Freedom┐ jumps to the specified directory, all that remains is select the
- desired file followed by the 'OK' button.
- Entries can be changed by opening the popup with the desired directory and
- mask active then selecting an existing slot with a double click or a
- single click whilst holding down the [Shift] key.
- Up to 40 files can be defined under the #PATHS section in FREEDOM.CNF.
-
- Extension popup
- ---------------
- A right mouse click to the right of the last '\' on the path line displays
- the Extension popup, simply select the desired extension mask to display
- files of the desired type in the directory window. The first entry in this
- popup is always '*.*'.
- Entries can be changed by right clicking to the right of the last '\' on
- the path line then selecting an existing slot with a double click or a
- single click whilst holding down the [Shift] key.
- A double click to the right of the last '\' on the path line displays the
- 'New mask' dialog. Enter the desired mask and select 'OK' to activate the
- mask.
-
- Currently edited settings (in the Path and Extension Popups) are NOT
- stored in the CFN file and are consequently lost when you reboot your
- machine. You'll have to edit the CFN file manually until we change
- Freedom┐.
-
- File type popup
- ---------------
- A double right mouse click to the right of the last '\' on the path line
- displays the File type popup, select the desired 'psuedo' file type mask
- which appears inside brackets, eg <Program>, at the end of the path line
- instead of the usual extender. Only folders and matching file types are
- displayed in the directory window. The first entry in this popup is always
- 'Folder'. Hold down the [Shift] key while right double clicking on the
- extension to append further file types to the path line.
-
- Drive popup
- -----------
- A left mouse click before the first '\' on the path line displays the
- available drives.
-
- Folder popup
- ------------
- A left mouse click on or before the last '\' on the path line displays a
- popup containing the folders at the selected directory level.
-
-
- General points
- --------------
- -The small icon at the bottom right can be used to resize the number of
- lines and columns used by Freedom┐.
- -Freedom┐ always allows multiple file selection however on selecting 'OK'
- it depends on the calling application how many files are loaded. In many
- cases this is only a single file.
- -The way Freedom┐ is designed often means there are two alternative ways
- of doing things. Some people prefer pressing the mouse button down for
- the whole time during a action, others prefer to click once to start and
- once briefly again to finish. Freedom┐ offers both methods in the
- following cases:
- In all popups, using the slider, as a flying dialog (with Freedom┐
- running in modal mode) using the size icon and finally even using
- Drag&Drop (Grab using [Control] or [Alternate] keys).
- -The (Selectric┐ compatible) function keys can be turned off (using the
- #NOFKTKEYS option in FREEDOM.CFN) so they can passed to an AV-Server.
- -The 'Again' button in the Search dialog offers an exceptional function:
- Hold down this button using the mouse to 'pseudo skip' files you're not
- interested in. Alternatively use the keyboard shortcut [Alternate]+W in
- which case keyboard events are surpressed!
- -Optionally Freedom┐ can display all its alert boxes completely in the
- background in which case they can be controlled without holding the right
- mouse button down. If in spite of this option you wish to top a Freedom┐
- alert this you can either click on the window title or briefly click any
- non-selectable background area!
- If you've read enough about features we suggest you have a play. After a
- few days (at most!) you'll have forgotten your old file selector and
- appreciate just how intuitive and powerful Freedom┐'s interface really is!
-
- Overview of Freedom┐ keyboard shortcuts
- =======================================
- [Alternate]+A-Z Select drive
- [Control]+[Backspace] Step one directory level up
- [Control]+[Undo] Step one directory level up
- [Control]+A Select all
- [Control]+[Shift]+A Invert selection
- [Control]+D Delete selected folder(s)/file(s)
- [Control]+N New object
- [Control]+I Object info
- [Control]+[Shift]+I File count, drive info
- [Control]+B Touch file/s
- [Tab] Object info OR auto-locator
- (Depends on #SHELLTAB option in CNF file)
- [Control]+[Tab] One-step auto-locator; cyclic folder and files
- [Control]+[Shift]+[Tab] One-step auto-locator; cyclic files only
- [Control]+F Search for object, linked to current file
- selector (F for find)
- [Control]+[Shift]+F Search for object, independent of selector
- [Control]+C Copy current status to Clipboard
- [Control]+[Shift]+C Export directory listing according to the
- #NICEFORMAT format string to Clipboard
- [Control]+V Copy/move files using data in file list
- [Control]+[Shift]+V Import status from Clipboard
- [Control]+H Sort by Name; H like Selectric┐ [Control]+Z
- Sort by Date; Z for Zeit (German for Time)
- [Control]+G Sort by Size; G for Grö₧e (German for Size)
- [Control]+T Sort by Type
- [Control]+K Unsorted; K for Keine (German for none)
- [Control]+R Sort in Reverse
- [Control]+[Shift]+S Deselect files using mask
- [Control]+S Select files using mask
- [Control]+E Enter mask (E for extension)
- [Control]+Y Open application specific Extension popup
- [Control]+P Open user defined Path popup
- [Control]+J Open Sort popup
- [Control]+X File list to Clipboard (SCRAP.TXT) tagged move
- [Control]+[Shift]+X Open user defined extension popup (eXtension)
- [Control]+M Open filtered user defined File popup
- [Control]+[Shift]+M Open unfiltered user defined File popup
- [Control]+< Open filtered History popup (< for backwards)
- [Control]+[Shift]+< Open unfiltered History popup
- [Control]+L Open Drive popup
- [Control]+W Cycle windows forwards
- [Control]+[Shift]+W Cycle windows backwards
- [Alternate]+[Control]+W Global window change (only via AV-Server)
- [Control]+[Return] or Open selected object (under a multitasking OS
- [Control]+O or AV-Server eg Gemini/Thing etc)
- [Control]+1-0 Select directory level from 1 to 10
- [Alternate]+[Esc] Select the default (home) path
- [Alternate]+1-0 Select user defined paths from 0 to 10
- [Alternate]+[Shift]+1-0 Select user defined paths from 11 to 20
- [Control]+Num.Pad . Select default extension
- [Control]+Num.Pad 1-0 Select user defined extensions from 1 to 10
- [Control]+[Shift]+ Select user defined extensions from 11 to 20
- Num.Pad 1-0
- [Control]+Num.Pad * Select *.* as mask
- [Control]+Num.Pad / Same as Freedom┐ window fuller icon
- [Control]+Num.Pad + Same as [Cursor down]+click on 'OK' button
- [Control]+Num.Pad - Same as [Cursor up]+click on 'OK' button
- [Shift]+[Esc] or Re-read directory
- [Control]+[Esc]
- [Esc] Clear 'File' editable field
- [Return] or [Enter] Same as 'OK'. Any selected files/folders will
- be passed to the calling application as
- file/s
- [Shift]+[Return] or Same as 'OK'. Any selected files/folders are
- [Shift]+[Enter] ignored and solely the text in the 'File'
- editable field is passed as a file to the
- calling applications
- [Control]+Q, [Undo] Same as 'Cancel'
- or [Control]+U
- [Help] Freedom┐ info
- [Shift]+[Help] or Open another application independent
- [Control]+[Help] file selector
- [Alternate]+[Control]+
- Space bar De/Iconify Freedom┐ selector or alert
- [Control]+Cursor up Same as Freedom┐ up scroll arrow
- [Control]+Cursor down Same as Freedom┐ down scroll arrow
- Cursor up Move selected file 'Cursor' up
- Cursor down Move selected file 'Cursor' down
- [Shift]+Cursor up Move selected file 'Cursor' up a page
- [Shift]+Cursor down Move selected file 'Cursor' down a page
- [ClrHome] Select first entry in directory window
- [Shift]+[ClrHome] Select last entry in directory window
-
- The function keys F1-F10, [Shift]+F1-F10 (=F11-F20) are user
- definable.
-
- Parallel processing capability
- ==============================
- Freedom┐ works like a co-operative operating system, allocating available
- processor time between all the currently running tasks.
- This means that under normal (co-operative) TOS versions Freedom┐ can work
- on a file search whilst reading a large directory or performing a file
- count for a drive. Even better each action started in Freedom┐ (Search,
- delete, file counts, directory reading, copy, move ..) are managed as
- extra tasks by Freedom┐ and can all run in the background even if
- individual task/s opens a popup, window or dialog! Unfortunately, thanks
- to the slow speed of GEMDOS, running parallel copy/move operations will
- cause Freedom┐ to grind to a halt all on but the fastest machines with
- fast storage media...
-
- One search dialog per file selector is allowed and it's bound to the file
- selector it was initiated from. However, using [Control]+[Shift]+F it's
- now possible to launch multiple independent search operations, set them
- all off to find different files, close Freedom┐ and sit back and watch
- your hard disk explode!
-
- Other operations including file counts, drive info, delete, touch and file
- info operations can run at the same time, the hard part is keeping on top
- of all the activities!
-
- The 'De/Select files' and 'Enter new mask' dialogs can only be started
- once and are bound to the file selector from which they were called.
-
- Drag and drop
- =============
- Freedom┐ can pass and receive files using Drag&Drop with applications
- using MultiTOS and AV Drag&Drop.
-
- Generally this means:
-
- -You can Drag&Drop files, holding the [Shift] key down, to a destination
- Freedom┐ file selector which will automatically close and pass the
- dragged files to the calling application.
- (If you'd rather not hold the [Shift] key down you can Drag&Drop the
- files onto the the 'File:' editable field.
- -A Drag&Drop without modifier keys copies (if possible).
- -A Drag&Drop holding down the [Control] key moves (if possible).
- -Additionally holding down the [Alternate] key during a copy/move
- operation enables objects to be renamed before copying/moving.
- -Drag&Drop onto icons: Drag objects from Freedom┐ to other applications,
- for example, to alternative desktops such as Thing and Gemini or to the
- icons (Delete/Info etc) in other Freedom┐ selectors)
-
- The way it works (Methodology)
- ------------------------------
- Where possible Drag&Drop copy/move actions will be left to the AV-Server
- (Thing/Gemini). If no AV-Server is available Freedom┐ tries to copy/move
- the files itself.
- Drag your files to another unblocked application and Freedom┐ asks the
- AV-Server whether it recognises the destination application then passes
- the files, if necessary via an intermediate AV-Server. If no AV-Server is
- available or the application is unknown then (as a last attempt) a
- VA_START is sent to the owner of the window (unless this can be determined
- using Appl. 0).
- Freedom┐ can also communicate with applications (for example Gemview)
- using the MultiTOS Drag&Drop (via pipes) although with most applications
- this involves a delay of several seconds. Applications which support
- MultiTOS Drag&Drop can have their filenames, without extensions, added
- under the #PIPEDD section of FREEDOM.CNF.
-
- Dragging object/s onto Freedom┐'s path line selects the object/s (just
- like dragging object/s to the 'File' line) except Freedom┐ remains open.
-
- The file type concept
- =====================
- Each file type can be assigned:
-
- -Name: A text description
- -Sort: A sort priority
- -Image: Number of the image in the image file
- Colours: Foreground colour for text, selected and unselected
- Background colour for text, selected and unselected
- Mask: A preceding \ denotes a folder rule
-
- Here's one example line from the #FILETYPES section from FREEDOM.CNF:
-
- Program 19 1 0 1 1 0 *.PRG,*.TOS,*.ACC,*.TTP,*.GTP,*.APP
- | | | | | | | |
- | | | | | | | +--Mask for list of file types
- | | | | | | +-------Text colour (selected)
- | | | | | +---------Background (selected)
- | | | | +-----------Text colour (Deselected)
- | | | +-------------Background (Deselected)
- | | +----------------Number of the corresponding image (icon)
- | +----------------------Sort priority
- +-----------------------------Type name (preferably brief descriptions)
- (Refer to the Thing Desktop)
-
- The file type descriptions can optionally be displayed in the directory
- window by adding '%X' in the format string.
- The Type option has also been added to the Sort popup and may be used in
- addition to the other sort methods. If selected the file type becomes the
- primary sort attribute and files are first grouped into types, according
- to their priority in FREEDOM.CNF, then sorted using the current secondary
- attribute (Name, Date, Size, Extender, Unsorted). Because two sorts are
- performed this option is slower.
- Be careful to place general masks after specific ones. For example placing
- if '*.*' is used as the first entry all subsequent entries will be
- ignored.
-
- Configuration
- =============
- Freedom┐ is highly configurable, the options include:
-
- -Font, size, colours and line spacing in the selector directory window
- -Scroll bar position to left/right of directory window
- -Various delay actions
- -Separate format string for 8.3 and long format filenames
- -Whether case sensitivity is observed
- -Whether the auto-locator is active and matches files and folders
- -Whether the alert box buttons are all the same width
- -Where Kobold is located (Environmental variable is checked)
- -Name of file viewer (1st View, ST-Guide etc)
- -Name of search utility (Parafin, FSearch etc)
- -Function key layout
- -Which files are interpreted as executables
- -Whether folders are opened using a single or double click
- -Whether a right click in the directory window scrolls (like Thing)
- or (like everywhere else) a double click is used
- -Whether background operation of window dialogs is active
- -Whether the file selector opens under the mouse
- -Number of lines/columns for the directory window
- -Up to 40 user defined files
- -Up to 40 user defined paths
- -Up to 40 user defined extensions
- -The path to search for the Freedom┐ file icons (FREEDMxx.IMG)
- -Rules which control file icon/colour/priority etc
- -List of applications Freedom┐ should run in modal mode
- -List of up to 16 applications which do not co-exist with Freedom┐
- -List of up to 64 applications which Freedom┐ can call using the VA_START
- or Menu bar trick
- -Whether Freedom┐ displays alert boxes in windows
-
- Currently these parameters can only by changed by editing the CNF file in
- a text editor (Everest etc) but don't panic! The CNF file is heavily
- commented. Some changes only take effect on re-launching Freedom┐.
-
- On starting Freedom┐ searches for its configuration file under a name
- which corresponds to the current screen resolution (using the same method
- employed by Gemini).
- For example at 640x400 resolution 06400400.CNF, at 1280x960 resolution
- 12800960.CNF etc. If Freedom┐ can't find a file specifically for the
- current resolution it searches for FREEDOM.CNF and if this fails default
- values are used instead.
- Freedom┐ searches for it's configuration file using the shel_find() call
- which means the search is left to the AES. The AES searches the current
- directory and all directories listed in the $PATH environmental variable.
- Using the Image path (#IMAGEPATH) variable in the CNF file it's possible
- to set a different image file for each colour depth and resolution and
- similarly, using the Font setting (#FONTID) different fonts for each
- resolution can be set up.
-
- Example:
- --------
- Actual folder containing Freedom┐:
-
- 03200200.CNF
- Could have an entry: #IMAGEPATH C:\FREEDOM\FDIMG\SMALL\
-
- 06400400.CNF
- Could have an entry: #IMAGEPATH C:\FREEDOM\FDIMG\NORMAL\
-
- The icon image file at 320x200 resolution would be searched for in:
- 'C:\FREEDOM\FDIMG\SMALL\'
- At 640x400 resolution 'C:\FREEDOM\FDIMG\NORMAL\' would be searched
- instead.
-
- The Image filenames denote the colour depth, for example:
- FREEDM04.IMG is 4 bit or 16 colours deep
- FREEDM08.IMG is 8 bit or 256 colours deep
-
- Important! Users of pre-version 1.14 should add the #IMAGES keyword to
- their FREEDOM.CNF otherwise your icons will not be loaded!
- The #IMAGES keyword sets how many icons exist in the IMG files. If the
- value is set explicity to 0 (or set incorrectly) no icons will be
- displayed. If this keyword is missing altogether only the folder icon is
- displayed.
-
- General configuration file notes
- --------------------------------
- Freedom┐ reads the file line by line. Any line preceded with a semi-colon
- ';' character is ignored. All other lines are searched for recognised
- keywords, for example #AUTOLOCATE. Keywords all begin with a hash '#'
- character. If no keyword is found the line is assumed to belong to the
- previously recognised keyword. Some options are followed by a list, for
- example #PATHS where up to 40 lines containing paths may follow.
-
- Exact information about each individual option can be found in the example
- configuration files included in the distribution and can be viewed and
- edited using your favourite text editor (Everest etc). Be sure to keep a
- back-up copy before making changes!
-
-
- The Image files and corresponding masks
- =======================================
- Freedom┐ reads FREEDOM.CNF and searches the path specified by #IMAGEPATH
- for the XIMG format files FREEDMxx.IMG where 'xx' represents the number of
- bitplanes, for example:
-
- Monochrome resolutions have 1 bitplane and load: FREEDM01.IMG
- 16 colour resolutions have 4 bitplanes and load: FREEDM04.IMG
- 256 colour resolutions have 8 bitplanes and load: FREEDM08.IMG
-
- If an appropriate image in XIMG format is found, and it has exactly the
- right number of bitplanes, it will be loaded and divided into individual
- images according to the value set in #IMAGES.
- For example if the image loaded is 280 pixels wide and 16 pixels high and
- #IMAGES 14 it's divided into 14 separate 20x16 pixel icons.
- This is a very flexible and easy to extend system but be careful when
- adding new icons or changing font size. Remember to update the #IMAGES
- value and if necessary edit your XIMG to the correct height. Always work
- on a back-up!
-
- The Format string
- -----------------
- Freedom┐ makes it easy to format the entries in the directory window to
- suit your needs. In addition to the standard 8.3 format (8 character
- filename followed by a period and 3 character extender) other file systems
- which use long filenames or other formats can be accessed.
-
- The display format is handled using a single format string in which the
- percent '%' character plays a special role. Let's set-up a string which
- formats the directory window listing to display the filename, size, date
- and time as follows:
-
- :
- EVEREST PRG 154.510 29.10.94 09:41
- EVEREST INF 840 09.01.95 11:36
- :
-
- First the filename is listed in standard 8.3 format followed by the size
- up to a maximum 9 digits followed by the date and time without seconds.
- Here's the format string:
-
- #FORMAT %-F %-E%9K %T%2D.%2M.%2Y %T%h:%m
-
- The format string uses the percent '%' character as a place marker for
- each attribute, the following attributes are available:
-
- F Filename up to the last period (if period used)
- E Filename from the last point (if extension used)
- N Full (unformatted) filename
- D Day
- M Month
- Y Year (without century 00-99)
- h Hour
- m Minutes
- s Seconds
- S Size in Bytes of file in '13456789' format, folders excluded
- P Size in Bytes of file in '1.345.678' format, folders excluded
- K Size in Bytes of file in '13456789' format, folders '<folder>'
- T Use the clock symbol for today's files, otherwise nothing
- A[xx] Attribute bit of the files [-a] Default character
- W[xx] Write protected file status [-r] Default character
- H[xx] Hidden bit file status [-h] Default character
- Z[xx] System bit file status [-s] Default character
- X File type
- a Any ASCII character (e.g, %13a for CR or %10a for LF)
- % The percent character used to denote attributes
-
- Tabs (Pseudo attributes):
- L Left justified tab (character by character)
- C Centred tab (character by character)
- R Right justified tab (character by character)
- l Left justified tab (pixel by pixel)
- c Centred tab (pixel by pixel)
- r Right justified tab (pixel by pixel)
-
- (Suggestions for other attributes welcomed!)
-
- Each attribute displayed by Freedom┐ has a default width. To make the
- width wider or narrower you can set the new width directly between the '%'
- character and the attribute (eg %9P). Freedom┐ right-justifies all
- attributes narrower than the field width. If you'd prefer to left-justify
- attributes insert a '-' immediately after the '%' part of the attribute,
- the '%-20N' start of the following example does this:
-
- On a system supporting long filenames it's not so important to use
- separate attributes for the filename and extender, here's an example:
-
- #LONGFORMAT %-20N%9P %2D.%2M.%2Y
-
- The directory window output leaves more room for the long filenames:
- :
- EVEREST.PRG 154.510 29.10.94
- EVEREST.INF 840 09.01.95
- :
-
- Proportional fonts
- ------------------
- With the introduction of tab handling (%L,%C,%R,%l,%c,%r) Freedom┐ can now
- make practical use of proportional fonts.
- The format string is used as the horizontal 'cursor' which together with
- the tab attributes provide good control over the directory window display.
-
- %l or %L displays left justified output to the right of the cursor
- position, %c and %C display centred output around the cursor postion and
- %r and %R display right justified output to the left of the cursor.
- All the tab attributes are strung together into a Format string. The
- offset values are always relative to the previous tab position.
-
- Negative tabs are allowed and text could overlay other text although this
- is likely to result in an untidy display (!) If no tabs are active, each
- attribute has a default width, which is padded with space characters to
- the left and right as needed to fit the default width.
- Using proportional fonts this is not desirable so it's important the first
- attribute in the format string is a tab. Here's an (ugly) example:
-
- %12R%N%6C%P%6L%2D.%2M.%2Y %T%h:%m
-
- '%N' displays the full filename right justified to 12 character spaces. At
- this point the cursor is positioned 12 character spaces from the left
- border. Next follows a centred tab which moves the cursor a further 6
- places to the right and '%P' displays the size of the file centered around
- this position. The cursor is now 18 character spaces from the left border.
- Finally the cursor is moved another 6 characters to the right to display
- the rest of the format string left justified 24 character spaces from the
- left border.
-
- The VA_START trick
- ------------------
- Using the VA_START message (Gemini/Thing/Ease) many programs can be
- 'tricked' into loading file(s) without loading another copy of itself into
- memory.
- Calling Freedom┐ from an application which understands the VA_START
- message (and is configured in the CNF file) causes Freedom┐ to send a
- simulated message back to the application that the 'Cancel' button has
- been pressed. This causes the application to call fsel_input then continue
- working leaving the Freedom┐ window open!
- After selecting a file(s) and exiting Freedom┐ using the 'OK' button
- Freedom┐ sends a VA_START message to the calling application which opens
- the file(s). It's similar to dragging file(s) onto an icon installed on
- the desktop (Gemini/Thing/Ease).
- Some example programs which understand the VA_START message are included
- in the example CNF file. There are plenty of programs which don't like
- this arrangement but one glorious exception is the Everest text editor,
- which handles everything VA_START throws at it!
- A disadvantage of the VA_START method is the directory path cannot be
- passed so next time the file selector is opened the old path is displayed.
- One workaround if the program understands VA_START and you have enough
- free screen available is to simply leave the Freedom┐ file selector open.
- This makes it possible to can drag files to the window of any application
- which understands VA_START at any time.
-
- Example #VA_START entry in FREEDOM.CNF:
-
- PAULA Load MODFILE
- | |
- | +-- Title in the file selector which Freedom┐ looks for
- +-------- AES program name
-
- The Menu bar trick
- ------------------
- And another trick: Applications in which file selector calls are directly
- bound to a menu entry can be added to the #MENUBAR section in FREEDOM.CNF.
- This allows absolutely non modal multiple file selections to be made. In
- contrast to the VA_START trick this method has the advantage of passing
- the directory path and extension.
- Using the supplied program MENU_ID, which runs as an application or
- accessory (APP/ACC), the ID numbers for a menu entry can be determined.
- Like the VA_START method the file selector returns 'Cancel' and then
- supplies the file/s afterwards. An MN_SELECTED message is sent to the
- relevant application (which simulates the menu item) and the program then
- calls fsel_[ex]input. Instead of opening a new file selector one of the
- selected files is returned with, if neccessary, a restore MN_SELECTED
- message. Finally multiple file selection. This doesn't work with programs
- without menu lines or programs which call the file selector from a dialog.
- You should not try to use the Menu bar trick for menu items such as 'Save
- as...', because this method can't remember which application window topped
- at the moment the original call was made, and normally the selection of
- such menu items refer to the _currently_ topped window. For this reason
- this list should only be used for absolutely context independent file
- selector calls!
-
- Example #MENUBAR entry in FREEDOM.CNF:
-
- PC 8 76 Select Project...
- | | | |
- | | | +--Title in the file selector which Freedom┐ looks for
- | | +--------Object number of the corresponding menu entry (item)
- | +----------Object number of the corresponding menu title (title)
- +-------------AES Program name (Pure C in this case)
-
- The title and item values can be determined using MENU_ID, which runs as
- an application or accessory (APP/ACC) and displays the numbers at the top
- right of the menu bar. The program is crude and should be removed after
- use because, in contrast to Freedom┐ itself, MENU_ID does not run under
- protected MiNT!
- Also bear in mind a new release of any application may have different
- 'item' or even 'title' values so you'll have to re-establish the correct
- IDs and update FREEDOM.CNF.
- We've already tried this trick successfully with many programs. The
- weakest point which Freedom┐ depends upon is that the MN_SELECTED message
- really is evaluated by the program and answered with a fsel_[ex]input call
- so that the next file can be sent. It's possible a program will not allow
- the selection of a particular menu item at any moment, for example it may
- still be loading the previous file, in which case the MN_SELECTED message
- will unfortunately be rejected. With Everest a wait time of around half a
- second is enough, with Pure C it always works (to our pleasure :-) and
- with other programs it doesn't. After sending a MN_SELECTED message
- Freedom┐ waits up to ten seconds before releasing 'uncollected' files. If
- the application has dumped the MN_SELECTED message and you manually call
- the file selector before ten seconds have elapsed the file selector
- doesn't appear but the next file in the queue should be delivered. After
- ten seconds have elapsed the file selector appears when the menu title is
- called.
- You cannot use this trick in the following cases:
- -The application has no menu line
- -The application uses fsel_input instead of fsel_exinput, which results in
- the default 'Select file...' title line which makes it impossible to
- distinguish between file selector calls within the same application. It's
- OK to so long as the program only calls the file selector once.
- -The application uses fsel_exinput but passes the same menu title from
- several different points in the program which makes it impossible to
- distinguish between file selector calls within the same application. It's
- OK to so long as the program only calls the file selector once.
- -The application opens by calling the relevant menu item the first time
- but after loading a file a dialog or some other user input is displayed.
- If you click fast enough these work...sometimes!
-
- There are still some conceivable areas of improvement for this trick:
- The delay between sending MN_SELECTED messages could be made application
- dependent/adjustable, maybe using fuzzy logic :-)
-
-
- Function key definitions
- ------------------------
- The function keys can be freely defined using the #FKTKEYS options in
- FREEDOM.CNF. A character string is used to represent each option.
- The string is read from left to right and assigned in turn to the function
- keys F1 to F20 (F11 = [Shift]+F1).
-
- Example:
- --------
- A-JKDEFGIH
-
- Assigns F1 with function A (see list below)
- Leaves F2 unassigned
- Assigns F3 with function J
- ..
-
- All unassigned function keys are still passed to the AV-Server where each
- key could peform an action. For example F2 could launch a program.
- Using the #NOSENDKEY option in FREEDOM.CNF keypresses are not sent to the
- AV-Server, this is particularly useful for applications which cannot
- tolerate this behaviour (for example Gemini 1.A). Here's the possible
- functions:
-
- A = Drive popup
- B = File popup (filtered with current mask)
- C = Extension popup
- D = Sort popup
- E = User defined path popup
- F = Available extensions popup
- G = Selection mask dialog
- H = Deselection mask dialog
- I = New mask dialog
- J = Find object dialog (bound to selector)
- K = Create new object dialog
- L = Selected files to list in Clipboard
- M = Open file (display or launch)
- O = History popup (filtered with current mask)
- P = Recursive touch selected file/s
- Q = Restore path from the clipboard
- R = Individual file info dialog
- S = File count on current drive
- T = Find object dialog (independent of selector)
- U = file list exported to clipboard using using #NICEFORMAT string
- V = File popup (unfiltered)
- W = History popup (unfiltered)
- X = File type popup
- - = Unassigned (Available to AV server)
-
- Note! By default Freedom┐ does not distinguish between upper and lower
- case (dependent on the parameter #LOWERCASE) when reading paths and masks.
- FREEDOM.CNF is formatted using upper and lower case to make it easier to
- distinguish between commands, comments, paths and masks.
-
- If you're using a case sensitive file system you can add a preceding '!'
- character before any path or mask to force Freedom┐ to observe case
- sensitivity.
-
- Programmers notes
- =================
- Freedom┐ can be directly supported. Please refer to the FDMPROTO.H,
- SLECTRIC.H and EXAMPLE.C files in the SOURCE folder in this distribution
- which covers programming options in more detail...
-
- We'd like to stress we're hoping programmers will develop direct support
- for Freedom┐ from their applications, this is beneficial for your
- applications and every Freedom┐ user. The general guidelines for handling
- the file selector is:
-
- If the FSEL Cookie >= v2.0 then the fsel_[ex]input call BEG/END_MCTRL
- should NOT be bracketed. If the FSEL Cookie < v2.0 the fsel_[ex]input call
- BEG/END_UPDATE should ALWAYS be bracketed.
-
- Under development
- =================
- -Conversion to eCPX to run under Christian Grunenberg's 'Space'
- -A 'Set' feature to handle the VA_START/Menu bar tricks.
- -Conflicting filenames dialog to make it possible to rename files during
- copy/move operations.
- -MTOS path Drag&Drop (for NEWDESK)
- -Improved Menu bar trick.
- -English hypertext help, yeah it's late and there's already a German
- version :-(
- -A setup program to ease Freedom┐ configuration.
- -Signal and AP_TERM evaluation under MultiTOS
-
- Known limitations
- =================
- -Freedom┐ can't be called from TOS programs. In principle this also
- applies to programs running in a VT52/TOSWIN window which would need to
- talk to the AES (using appl_init), so the AES file selector server could
- exchange data with Freedom┐.
- -Using virtual RAM the program flags 'lalt' and 'malt' must be cleared!
- -There are a programs which don't work 100% with Freedom┐ (although these
- are becoming a rare breed). If you find one please report it to us AND
- the author of the program so we can solve incompatibilities.
- -The Server uses over 160Kb memory (well you wanted built-in copy/move
- operations!). Without abandoning Enhanced GEM and it's wonderful features
- we can't see any alternative...
- -In MagiC single mode the Freedom┐ Server is frozen which means the
- resident FFSEL.PRG cannot be reached or a second selector cannot be
- launched in parallel if a path needs to be passed to FFSEL.INF. Until
- MagiC documentation is available we can't solve this...
- -Messages under MiNT from FFSEL.PRG (the resident part) are not evaluated
- => after closing each selector/alert (KILL/TERM) one of the eight trap
- handler slots is lost.
-
- Known problems
- ==============
- -CD-Tools. Old versions which worked fine with Freedom┐, now fall through
- the Dxreaddir call!
- Solution: Get the latest version. Freedom┐ is not the only program which
- uses Dxreaddir so if you experience any problems with MetaDOS drivers
- don't settle for a version which cannot cope with Dxreaddir!
- -Falcon TOSs have an 'extended' Dsetdrv() that causes some problems with
- Metados <=2.5 and programs (Freedom┐, Gemini etc.) using the
- Dsetdrv(Dgetdrv()) construction.
- Under some circumstances drives can suddenly vanish using Metados
- versions =<2.5. This 'feature' should be corrected in Metados v2.6.
- -Zeig's mir. For some reason Freedom┐ and Zeig's mir don't get along.
- It appears to depend on a faulty XACC protocol implementation in either
- or both our programs but in any event communciation via the XAcc cause
- both programs to crash under Single TOS... we're working on it.
- -MultiDialog. Good Idea, terrible implementation. Avoid!
- -STZip (2.6). No redraws occur if the window lies in the background.
- -Some programs don't remember which of their windows can change positions
- during file selection/alert display. For example Paula, XControl, Maxidat
- and NotePad ignoring rectangle lists and/or sending WM_MOVED messages.
- Remedy: Don't move the window and inform the author!
- -Kandinsky and Triple_D bomb when run with Freedom┐ installed.
- This should be fixed in the next Kandinsky release, until then add these
- applications by adding the filenames, without extension, under the
- #EXCLUDE section in FREEDOM.CNF.
- -The Let 'em Fly 'Niceline' option used with some programs can result in
- menu entries being moved (evil!) Neither Freedom┐ (or Let 'em fly) is to
- blame. Sufferers: Pixart v1.2 and 'Rastaman'.
- Remedy: Turn Nicelines off or use alternative programs...
- -If you must use Let 'em Fly then install it after FFSEL.PRG in the Auto
- folder otherwise they both try to handle alerts. Obvious really!
-
-
- Frequently asked questions
- ==========================
- Q: Why is Freedom┐ so large (and getting bigger with each release)?!
- A: Many people asked us to implement in-built copy/move operations, we've
- improved the error/conflict handling, added the menu bar trick and file
- type concept. Consider this, Freedom┐ has most of the functionality of
- a desktop, MagX is probably the most compact but without window dialogs
- and Kobold support it's about the same size!
- And name us another program which allows you to continue working
- during copy/move operations?
-
- Q: Why after a certain time does Freedom┐ appear modally from all programs
- until I select the ACC entry.
- A: This is usually caused by a program placing a form_dial and not
- removing it which causes the Freedom┐ trapper to (incorrectly) assume a
- dialog is still open on screen. As a workaround when the accessory
- version is called it clears the form_dial field. It's also possible to
- switch off the form_dial query in the trapper using the #NOFORMDIAL
- option in FREEDOM.CNF. This runs the risk with some programs that a
- window will open over a dialog and cause screen garbage. Happily only a
- few programs still display their dialogs on screen using
- form_dial/form_do and of these only GEM-View springs to mind as a
- program which tehn calls the file selector.
- Getting on my soapbox it appears ludicrous to me that programmers don't
- rate the multitasking capability of their programs above the saving of
- a few Kb of application size. It's especially crazy when the routines
- for Windowed dialogs are available as Freeware!
- Re: Papyrus: V4.0 includes a reworked dialog library which should
- relieve it of its status as the main culprit in this area :-)
-
- Q: Yuck! Why have Freedom┐'s radio buttons become octagonal in monochrome!
- A: Chrisker attempted to install AES-Font idependent round radio buttons
- but after several hours fighting with the VDI circle routines admitted
- defeat concluding whoever programmed the offending routine knew nothing
- of circle algorithms but instead used the Random() command :-)
- The real result of Chrisker's struggle is only visible when running in
- sixteen colours or more using a 3D-AES (those nice new radio
- buttons!). When using small AES-Fonts, the octagonals look like
- circles/ellipses!
-
- Q: Why do I get the system selector using CPXs?
- A: It's a deliberate safety measure. In theory Freedom┐ could function by
- delving deeper into the system. Before the NVDI 3 Font CPX there
- weren't many useful CPXs which called the file selector. CPXs are
- normally too small, unmanageable and not multitasking friendly and
- that's before we look at XControl which is itself uncleanly
- programmed....(I think that's enough! :-)
-
- Q: Why is the system file selector displayed, for no apparent reason, with
- certain programs?
- A: 1) The program makes AES calls before appl_init or doesn't make a
- appl_init call at all!
- (Refer to 'Known problems with other software' for more details)
- 2) Some programs make dirty AES calls (Some calls do not pass the same
- global field to the AES parameter block that appl_init initialised).
- Often the blame lies with outdated GEM libraries which don't include
- bindings for some of the 'newer' AES Functions (for example
- fsel_exinput) and the programmer has to create them manually.
-
- If you're using a different global-field to the library, even out of
- necessity, then try to get hold of the GEMPARBLK because it's written
- in Pascal, Basic or similar.
- The GEM libary in Pure Pascal even includes flawed global-fields. Using
- Pure C it's very simple to use the GEMPARBLK bindings instead of the
- ones in the library. Under MiNT passing an invalid global field causes
- the AES itself problems: In this case the MiNT-ID of the application
- must always be handled first by Appl-ID.
-
- As soon as Andreas makes the internal AES information for MagiC
- available we'll be able to address this problem, at least for MagiC.
-
- Why programmers should use always the same GEMPARBLK for AES calls
- ------------------------------------------------------------------
- GEMPARBLK is a structure which can pass parameters to GEM when calling
- a GEM function. This structure also contains the (famous) global-field,
- which is initialised by the AES on the first GEM call (appl_init) of an
- Application.
- The information, that is put into that field by the AES is needed by
- Freedom┐ to determine which application has made the call. Because the
- AES itself doesn't need this information (it always knows, which
- Application is running, because normally the AES is the one switching
- the tasks!) no one is urged to always use the same GEMPARBLK structure
- when calling the AES.
- For example because CPXs do not call appl_init (they're not
- applications), the global-Field of the GEMPARBLK structure they use
- usually contains only zero values. But if there's no correct
- global-field, there's also no information which Freedom┐ can access to
- determine the calling Application, and Freedom┐ has to relinquish
- contol to the system file selector.
-
- From MagiC 3 Freedom┐ will be able to access the AES internal
- information, which should make it possible for Freedom┐ to appear when
- calling the file selector from CPXs along with some dirty applications.
-
- Q: Freedom┐ displays a modal dialog without apparent reason?!
- A: Freedom┐ uses the MCTRL flags and the AES to recognise flying dialogs.
- Dialogs can't receive redraw messages so Freedom┐ also has to appear as
- a modal dialog. A few programs didn't call the file selector from
- flying dials but also set MCTRL (for example Gemini, GemView)
- -> Freedom┐ must accept this and displays itself as a flying dialog.
- You can set these programs free by adding the the name displayed in the
- Freedom┐ title bar under #IGNOREMCTRL section in FREEDOM.CNF.
- Programs which also call the selector from dials (for example CAT and
- Maxidat) should NOT be listed!
- The guidelines for programmers are:
- If the FSEL Cookie >= v2.0 then use fsel_[ex]input call, NOT MCTRL.
- If the FSEL Cookie < v2.0 then always use MCTRL and UPDATE should
- always be set.
-
- Guidelines for programmers
- --------------------------
- If the FSEL-Cookie >= 2.00 is installed, the fsel_[ex]input call should
- NOT be nested with MCTRL, otherwise always! UPDATE should always be
- set.
-
- Q: If I move Freedom┐ suddenly the windows of the calling application
- vanish. However on closing Freedom┐ they all reappear, whats going on?
- A: This is a problem fundamentally linked to the way Freedom┐ works.
- Because the calling application simply waits at the file selector it
- doesn't notice its windows need redrawing.
- In order to avoid screen garbage previous Freedom┐ versions have
- intercepted any redraw messages and filled the offending window with
- the Freedom┐ logo. This method met with wide dissapproval and caused
- various problems. We've had a rethink and come up with a new approach
- which, although not perfect, circumvents all the earlier problems and
- is more elegant, more compatible and needs less overhead from
- Freedom┐'s point of view.
-
- Guidelines for programmers
- --------------------------
- The old process suffered from a further stubbon problem: After
- intercepting window redraws Freedom┐ has to restore the windows using a
- WM_MOVED, followed of a WM_REDRAW message but:
- 1) A considerable number of applications don't send a message after
- file selection.
- 2) Came sometimes a further, from the AES sent WM_REDRAW between them,
- and so the WM_MOVED arrived not more than first message with the
- application and so the window is redrawn at the wrong position.
- There's also a problem with XAcc messages which can under certain
- circumstances get lost when a certain upper limit is passed with all
- known AES versions. The (mildest) effect is application windows which
- that were moved during file selection didn't receive any Redraw/Moved
- messages, although (according to Sysmon) they were sent.
- Under MagiC, with lots of open windows, one possible workaround is to
- send a SMC_TIDY_UP message instead of loads of redraws...
-
- Q: If Kobold or Parafin are called from Freedom┐, under MagiC their
- windows are not handled correctly. What's going on?
- A: MagiC sends false window top messages! MagiC tries to prevent the top
- window and menu line belonging to different programs.
- As a consequence (and to the chagrin of many users) closing the last
- window of an application takes the window stack out of consideration.
- Normally this effect would appear every time Freedom┐ closes its last
- window (which it naturally does quite often!). Happily a trick has
- fallen into our laps:
- If MagiC is available, Freedom┐ bottoms the corresponding window before
- closing it.
- If the last window closed is not the top window MagiC behaves
- completely 'normally'.
- Hopefully either MagiC will change its behaviour or this loophole
- remains available! -Although we can't expect all programmers to
- implement the 'bottom' trick...
-
- Q: Can Freedom┐ really survive a resolution change?
- A: Yes! But as a precaution it's a good idea to close any Freedom┐
- selectors/alerts!
-
- Q: Why does MiNT display the System alert and file selector using
- 'Load...'?
- A: This alert/file selector is called directly from the AESSYS.
- Freedom┐ should not control this process...
-
- Q: Why does the MagiC 'Start program...' display the system file selector
- when Selectric┐ works OK?
- A: MagiC accesses the file selector differently for this operation and
- this is not accessible to Freedom┐ therefore the system file selector
- appears. (You can also run Selectric┐ alongside Freedom┐ by running it
- before FFSEL in the Auto folder in which case Selectric┐ appears!).
-
- Q: If I use Freedom┐ to copy files using Kobold 2 with Gemini <=1.a
- installed then the Freedom┐ window is updated before instead of after
- the copy operation.
- A: An Error in Gemini (The corresponding message is sent before Gemini
- receives a reply from Kobold, and in general if something is copied).
-
- Q: Gemini sometimes crashes when I press unassigned keys in Freedom┐.
- A: Freedom┐ passes unassigned keys to the AV-Server. Gemini 1.a doesn't
- tolerate this behaviour and leads to a crash.
- Activate the #NOSENDKEY in FREEDOM.CNF to cure the problem.
-
- Q: Freedom┐ locked up/crashed my system...
- A: We and our beta testers have thoroughly tested Freedom┐ with all the
- applications we can get our hands on but there are bound to be problems
- with a few applications!
- If you do encounter a problem first check the problem occurs on a
- completely clean system with NO Auto folder or accessories loaded. If
- the problem persists please report it using one of the contact
- addresses. Include you machine details along with the program name
- (send it to us if possible), version with a clear concise description
- of the problem and we'll do our best to fix it.
-
- Q: Do I have to load Freedom┐ as an ACC under Single TOS?
- A: Yes. Freedom┐ is designed to run as a parallel application under a
- multitasking OS and under Single TOS the only way to do this is as a
- desktop accessory. This will change when the eCPX version of Freedom┐
- is released for Space!
-
- Q: Why are the calls #VASTART, #MENUBAR and #NOALERTS included in the
- Freedom┐ configuration file?
- A: These are needed when running Freedom┐ as an application to overcome
- some fundamental limitations in this mode of operation. They will not
- be needed in the forthcoming Freedom┐ eCPX.
-
- Q: Why are the three images (FREDOMxx.IMG) so nice?
- A: Because Chrisker designed them.
-
- Q: Why are the Freedom┐ function icons so nice?
- A: Because Kolja designed them!
-
- Legal stuff
- ===========
- No part of this publication or other Freedom┐ documentation may be
- reproduced, transmitted, transcribed, stored in a retrieval system, or
- translated into another language or computer language, in any form or by
- any means, electronic, mechanical, magnetic, optical, chemical, manual or
- otherwise without prior written consent of the authors.
-
- Warranty and liability
- ----------------------
- Whilst we will make our best endeavours to resolve any problems you may
- experience using Freedom┐ the liability of the authors and their agents
- for any loss, or consequential loss, you may suffer due to the use of
- Freedom┐ is strictly limited to refunding your shareware fee.
-
- All trademarks used are recognised and acknowledged.
-
- About this documentation
- ------------------------
- -Original German manual
- (c) 1995 by Christian Krüger and Kolja Koischwitz
- -English translation and adaptation
- Joe Connor
-
- Registration:
- =============
- Option 1
- --------
- UK users can register locally via Joe Connor's Supported Shareware scheme.
- Refer to the file SUPPORT.TXT included with this archive. Alternatively
- you may register directly:
-
- Option 2
- --------
- Send DM 30 (cash, Eurocheque etc) and a self addressed envelope and
- international reply coupon to:
-
- Kolja Koischwitz
- Sandhauser Stra₧e 21
- 13505 Berlin
-
- Option 3
- --------
- Transfer DM 30 to the following bank account:
-
- PGiroamt Berlin
- Kolja Koischwitz
- BLZ (Sort Code): 10010010
- Konto-Nr (Account No): 705 92-100
-
- Be sure to clearly state the transfer is to register Freedom┐ along with
- with your contact details!! Please also send an Email/letter to confirm
- your transfer.
-
- To generate your key we need the following details:
-
- Name: ....................................
- Street: ....................................
- Town, County Postcode: ....................................
-
- We'll rush you a key together with the latest registered version which you
- can only unpack using your personal key!
-
- Email contacts
- --------------
- Authors:
- Kolja: joust@cs.tu-berlin.de
- Chrisker: chrisker@cs.tu-berlin.de
-
- Agents:
- Criss: Christian_Grunenberg@lb.maus.de (EnhancedGEM-Library)
- Joe: jconnor@cix.compulink.co.uk
-
- That's it! Kolja and Chrisker
-